import {defineStore} from "pinia";

// defineStore方法接收两个参数
// 第一个参数接收：仓库的名字
// 第二个参数：仓库的配置对象
// 返回一个函数作用就是让组件可以获取到仓库的数据
let configStore = defineStore('config', {
    // 存储数据:state
    state: () => {
        let c = {
            contextPath: "hbos-business-thirdparty-integration",
            port: 8080
        }
        const systemConfigStr = localStorage.getItem("systemConfig");
        if (systemConfigStr) {
            const systemConfig = JSON.parse(systemConfigStr);
            c.contextPath = systemConfig.contextPath;
            c.port = systemConfig.port;
        }
        return c;
    },
    actions: {
        updatePort(val) {
            // this就是仓库的数据对象
            this.port = val;
        },
        updateContextPath(val) {
            // this就是仓库的数据对象
            this.contextPath = val;
        },
        toPersist() {
            localStorage.setItem("systemConfig", JSON.stringify({
                contextPath: this.contextPath,
                port: this.port
            }));
        }
    },
    getters: {
        // 计算一下arr数组的和
        // port() {
        //     return this.port;
        // },
        // contextPath() {
        //     return this.contextPath;
        // }
    }
})


// 对外暴露出去
export default configStore;